import numpy as np;
import matplotlib as plt;
import math;
__author__="kiana";
'''
鱼雷相关参数的定义
'''
# Vt表示鱼雷发射的速率
# C表示0时刻目标航向角观测值 C ∈[0,2π)
# V表示0时刻目标匀速直线运动速率观测值 V>0
# D表示目标距离观测值 D>0
# β表示0时刻目标方位角观测值 β ∈[0,2π)
# l为舰船长度 l>0
# X表示0时刻的目标舷角观测值  X=X(C,β)=β-C-π*sign(β-C)∈[-π,π]
# ϕ表示发射鱼雷的提前角 ϕ与目标距离D无关 只与X以及目标与鱼雷的速率比k=V/Vt有关 ϕ=(X,k)=arcsin(ksinX)
#因为鱼雷速度大大于目标速度，故可以不在乎提前角的定义域

#0时刻 C,V,D,β的真值为C0,V0,D0,β0
#观测误差为 ΔC,ΔV,ΔD,Δβ 则C0=C-ΔC,D0=D-ΔD,V0=V-ΔV,β0=β-Δβ
#则目标舷角真值为X0=β0-C0-π*sign(β0-C0)=β-Δβ-(C-ΔC)-π*sign(β0-C0)
#规定sign(β0-C0)=sign(β-C)
#X0=X-Δβ+ΔC=X-ΔX   且ΔX=Δβ-ΔC
#设鱼雷速度的观测值为Vt,误差为ΔVt 则其真值为Vt0=Vt-ΔVt
#鱼雷航向角误差为Δϕ 则鱼雷实际航向为Ct0=β+ϕ-Δϕ
'''
xq=(D-ΔD)*(sin(ϕ-Δϕ+Δβ)-(V-ΔV)/(Vt-ΔVt)*sin(X-Δβ+ΔC))/sin(X+ϕ-Δϕ+ΔC) 这个为xq的计算公式
'''
print('\u0394');#用于打出Δ符号
print('\u03C0') #用于打出π符号
print('\u03D5') #用于打出ϕ符号
print(math.pi);
def my_sign(x):#规定符号函数取0时的值为1
    if x == 0:
        return 1
    else:
        return np.sign(x)
def probability(X,ΔC,Δβ,Δϕ,ϕ,V,ΔV,Vt,ΔVt,l):#计算击中的概率
    xq = (D - ΔD) * (np.sin(ϕ - Δϕ + Δβ) - (V - ΔV) / (Vt - ΔVt) * np.sin(X - Δβ + ΔC)) / np.sin(X + ϕ - Δϕ + ΔC)
    P(-l/2<=xq<=l/2)




